/*!
\copyright  Copyright (c) 2022 - 2025 Qualcomm Technologies International, Ltd.
            All Rights Reserved.
            Qualcomm Technologies International, Ltd. Confidential and Proprietary.
\file
\brief      Kymera module to handle functions common to LE Audio
*/

#ifndef KYMERA_LE_COMMON_H_
#define KYMERA_LE_COMMON_H_

#include "kymera_adaptation_audio_protected.h"

#define LE_AUDIO_INVALID_ISO_HANDLE         ((uint16) 0xFFFF)

#if defined(INCLUDE_LE_AUDIO_UNICAST) || defined(INCLUDE_LE_AUDIO_BROADCAST)
#include "le_audio_messages.h"


#define LE_AUDIO_LC3_MANDATORY_TTP_DELAY_IN_US  32500ul

/*! \brief Indicates when DSP clock boost is required for certain LEA use-cases
    \return TRUE if DSP clock has to be boosted
*/
bool kymeraLeAudio_IsMaxDspClockRequired(void);

/*! \brief Set the Mic Mute state.
*/
void KymeraLeAudioVoice_SetMicMuteState(bool mute);
#else

#define kymeraLeAudio_IsMaxDspClockRequired()     (FALSE)
#define KymeraLeAudioVoice_SetMicMuteState()      (FALSE)
#endif  /*defined(INCLUDE_LE_AUDIO_UNICAST) || defined(INCLUDE_LE_AUDIO_BROADCAST) */

#if defined(INCLUDE_LE_AUDIO_UNICAST) || defined(INCLUDE_LE_AUDIO_BROADCAST) || defined (INCLUDE_LE_AUDIO_ANALOG_SOURCE)
/*! \brief Utility to retrieve ISO handle corresponding to the passed audio channel

    \param iso_handle_list ISO handle list
    \param audio_channel audio channel for which ISO handle is to be retrieved

    \return Valid ISO handle if found otherwise In valid ISO handle returned when no associated ISO handle for this audio channel
*/
uint16 KymeraLeAudioVoice_GetIsoHandle(kymera_le_audio_iso_handle_list_t *iso_handle_list, uint32 audio_channel);
#endif
#endif /* KYMERA_LE_COMMON_H_ */
